#pragma once

/*
	This is the base component of the game manager.
	Anything that registers itself, or is contained within, the  game manager
	should derive from this class to allow itself to be stored efficiently
	and updated/rendered appropriately with the rest of the game.

	If your component utilizes animation attributes (position/rotation)
	please inherit from the SpriteComponent class

*/

class CGameComponent
{
protected:
	
	unsigned int _ID;

public:
	CGameComponent() { }
	virtual ~CGameComponent(void) {}

	virtual void Render() = 0;
	virtual void Update(double dt) = 0;

	unsigned int ID() { return _ID; }
	void ID(unsigned int newID) { _ID = newID; }
};
